<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    
    <script>

        // 在ES6以前，我们无法给一个函数参数设置默认值，只能采用变通写法：
        function add(a,b) {
            // 如果b为空，则给默认值1
            b = b || 1
            return a + b;
        }
        console.log(add(10));
        
        // ES6写法：直接给参数设置默认值，没传就会自动使用默认值
        function add2(a,b = 1) {
            return a + b;
        }
        console.log(add2(20));
        
        // 不定参数
        function fun(...values) {
            console.log(values.length);
            
        }
        fun(1,2,3);     // length = 3
        fun(1,2,3,4,5)  // length = 5

        // 箭头函数
        // ES6 之前声明一个方法
        // var print = function(obj) {
        //     console.log(obj);
        // }

        var print = obj => console.log(obj);   
        print("hello");

        // ES6之前：
        var sum = function(a,b) {
            c = a + b;
            return a + b;
        }
        console.log(sum(10,10));
        // ES6：
        var sum2 = (a,b) => a + b;
        console.log(sum2(10,10));

        var sum3 = (a,b) => {
            c = a + b;
            return a + b;
        }
        console.log(sum3(10,30));
        
        const person = {
            name: "Jack",
            age: 18,
            language: ['java','js','css']
        }
        function hello(person) {
            console.log("hello",person.name);
        }
        // 箭头函数+结构
        var hello2 = ({name}) => console.log("hello",name);
        hello2(person);

    </script>


</body>
</html>